/******************************************************************************* * Copyright (c) 2002, 2013 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.jdt.debug.tests.eval; import org.eclipse.debug.core.model.IValue; import org.eclipse.jdt.core.Signature; import org.eclipse.jdt.debug.core.IJavaPrimitiveValue; import org.eclipse.jdt.internal.debug.core.model.JDIArrayValue; import org.eclipse.jdt.internal.debug.core.model.JDIObjectValue; public class VariableDeclarationTests extends Tests { public VariableDeclarationTests(String arg) { super(arg); } protected void init() throws Exception { initializeFrame("EvalSimpleTests",15,1); } protected void end() throws Exception { destroyFrame(); } // int public void testInt() throws Throwable { try { init(); IValue value = eval("int i= 3; return i;"); String typeName = value.getReferenceTypeName(); assertEquals("int : wrong type : ", "int", typeName); int intValue = ((IJavaPrimitiveValue)value).getIntValue(); assertEquals("int : wrong result : ", 3, intValue); } finally { end(); } } // java.lang.String public void testString() throws Throwable { try { init(); IValue value = eval("String i= \"test\"; return i;"); String typeName = value.getReferenceTypeName(); assertEquals("java.lang.String : wrong type : ", "java.lang.String", typeName); String stringValue = ((JDIObjectValue)value).getValueString(); assertEquals("java.lang.String : wrong result : ", "test", stringValue); } finally { end(); } } // java.util.ArrayList public void testArrayList() throws Throwable { try { init(); IValue value = eval("java.util.ArrayList i= new java.util.ArrayList(); return i;"); String typeName = value.getReferenceTypeName(); assertEquals("java.util.ArrayList : wrong type : ", "java.util.ArrayList", Signature.getTypeErasure(typeName)); } finally { end(); } } // int[] public void testIntTab() throws Throwable { try { init(); IValue value = eval("int[] i= new int[] {3,2}; return i;"); String typeName = value.getReferenceTypeName(); assertEquals("int[] : wrong type : ", "int[]", typeName); IValue cellValue = ((JDIArrayValue)value).getValue(0); typeName = cellValue.getReferenceTypeName(); assertEquals("int[] : wrong type : ", "int", typeName); int intValue = ((IJavaPrimitiveValue)cellValue).getIntValue(); assertEquals("int[] : wrong result : ", 3, intValue); } finally { end(); } } // java.lang.String[] public void testStringTab() throws Throwable { try { init(); IValue value = eval("String[] i= new String[] {\"test1\",\"test2\"}; return i;"); String typeName = value.getReferenceTypeName(); assertEquals("java.lang.String[] : wrong type : ", "java.lang.String[]", typeName); IValue cellValue = ((JDIArrayValue)value).getValue(0); typeName = cellValue.getReferenceTypeName(); assertEquals("java.lang.String[] : wrong type : ", "java.lang.String", typeName); String stringValue = ((JDIObjectValue)cellValue).getValueString(); assertEquals("java.lang.String[] : wrong result : ", "test1", stringValue); } finally { end(); } } // java.util.ArrayList[] public void testArrayListTab() throws Throwable { try { init(); IValue value = eval("java.util.ArrayList[] i= new java.util.ArrayList[] {new java.util.ArrayList(), new java.util.ArrayList()}; return i;"); String typeName = value.getReferenceTypeName(); assertEquals("java.util.ArrayList[] : wrong type : ", "java.util.ArrayList[]", Signature.getTypeErasure(typeName)); IValue cellValue = ((JDIArrayValue)value).getValue(0); typeName = cellValue.getReferenceTypeName(); assertEquals("java.util.ArrayList[] : wrong type : ", "java.util.ArrayList", Signature.getTypeErasure(typeName)); } finally { end(); } } }